import type {
  UserResponseData,
  User,
  AllRoleResPonseData,
  SetRolrData,
} from './type'
// 用户管理接口模块
import request from '@/utils/request'
// 枚举地址
enum API {
  // 获取全部已有账户信息
  ALLUSER_URL = '/admin/acl/user/',
  // 添加一个新的用户账号
  ADDUSER_URL = '/admin/acl/user/save',
  // 更新已有用户账号
  UPDATEUSER_URL = '/admin/acl/user/update',
  // 获取全部职位，当前账号拥有的职位接口
  ALLROLEUURL = '/admin/acl/user/toAssign/',
  // 已有用户分配角色
  SETROLE_URL = '/admin/acl/user/doAssignRole',
  // 删除某一个账号
  DELETEUSER_URL = '/admin/acl/user/remove/',
  // 批量删除按钮
  DELETEALLUSER_URL = '/admin/acl/user/batchRemove',
}
// 获取用户账号信息接口
export const reqUserInfo = (page: number, limit: number, username: string) =>
  request.get<any, UserResponseData>(
    API.ALLUSER_URL + `${page}/${limit}/?username=${username}`,
  )
// 获取用户账号信息接口
export const reqAddOrUpdateUser = (data: User) => {
  // 携带参数返回
  if (data.id) {
    return request.put<any, any>(API.UPDATEUSER_URL, data)
  } else {
    return request.post<any, any>(API.ADDUSER_URL, data)
  }
}
// 获取全部职位以及包含当前用户已有职位
export const reqAllRole = (userId: number) =>
  request.get<any, AllRoleResPonseData>(API.ALLROLEUURL + userId)
// 分配职位
export const reqSetUserRole = (data: SetRolrData) =>
  request.post<any, any>(API.SETROLE_URL, data)
// 删除某一个账号
export const reqRemoveUser = (userId: number) =>
  request.delete<any, any>(API.DELETEUSER_URL + userId)
// 批量删除接口
export const reqSelectUser = (idList: number[]) =>
  request.delete(API.DELETEALLUSER_URL, { data: idList })
